package cn.iocoder.yudao.module.vos.enums;

import cn.iocoder.yudao.framework.common.exception.ErrorCode;

/**
 * System error code constants
 *
 * system segment uses 1-002-000-000
 */
public interface ErrorCodeConstants {

    ErrorCode E_CDR_NOT_EXISTS = new ErrorCode(10001, "CDR does not exist");

    ErrorCode TENANT_REQUEST_LOG_NOT_EXISTS = new ErrorCode(10002, "Tenant request log does not exist");

    ErrorCode SECRET_RECHARGE_RECORD_NOT_EXISTS = new ErrorCode(10003, "Secret account recharge record does not exist");

    ErrorCode SECRET_ACCOUNT_NOT_EXISTS = new ErrorCode(10004, "Secret account does not exist");

    ErrorCode DATA_MATCH_TASK_NOT_EXISTS = new ErrorCode(10005, "Data matching download task does not exist");

    ErrorCode SECRET_RECHARGE_AMOUNT_INVALID = new ErrorCode(1_002_001, "Recharge amount must be greater than 0");

    ErrorCode RETRIEVAL_DAYS_PARAM_NOT_NULL = new ErrorCode(11300, "The search date cannot be empty");

    // —— appSecret / 账号相关（已存在/沿用） ——
    ErrorCode APP_SECRET_HEADER_MISSING = new ErrorCode(2007001001, "Missing 'appSecret' in request header");
    ErrorCode APP_SECRET_DUPLICATE = new ErrorCode(2007001002, "The key (appSecret) already exists");

    // —— 业务已有 ——
    ErrorCode MARKETING_SCORE_NOT_EXISTS = new ErrorCode(2007001003, "Marketing score does not exist");
    ErrorCode GATEWAY_LEVEL_NOT_EXISTS = new ErrorCode(2007001004, "Gateway level does not exist");
    ErrorCode MARKETING_LIST_LOG_NOT_EXISTS = new ErrorCode(2007001005, "Marketing list log does not exist");
    ErrorCode SECRET_ACCOUNT_PRODUCT_PRICE_NOT_EXISTS = new ErrorCode(2007001006, "Global product pricing (unique productPermission → price) does not exist");
    ErrorCode PUSH_LIST_CONFIG_NOT_EXISTS = new ErrorCode(2007001007, "Push-list configuration does not exist");
    ErrorCode ACTIVITY_TASK_NOT_EXISTS = new ErrorCode(2007001008, "Activity task details do not exist");
    ErrorCode ACTIVITY_FAILED_NUMBERS_NOT_EXISTS = new ErrorCode(2007001009, "Activity task failed-number details do not exist");

    // —— 新增：统一给 /v1/search 与 /v1/retrospective 链路用 ——
    ErrorCode PARAMS_INCOMPLETE = new ErrorCode(2007001010, "Incomplete parameters");
    ErrorCode INVALID_PHONE_FORMAT = new ErrorCode(2007001011, "Invalid phone number format");
    ErrorCode CUTOFF_DATE_REQUIRED = new ErrorCode(2007001012, "Cutoff date cannot be empty");
    ErrorCode CUTOFF_DATE_FORMAT_INVALID = new ErrorCode(2007001013, "Cutoff date format is invalid");

    ErrorCode ACCOUNT_DISABLED = new ErrorCode(2007001014, "Account is disabled");
    ErrorCode ACCOUNT_EXPIRED = new ErrorCode(2007001015, "Account has expired");
    ErrorCode ACCOUNT_NOT_AUTHORIZED = new ErrorCode(2007001016, "Account is not authorized");
    ErrorCode INSUFFICIENT_BALANCE = new ErrorCode(2007001017, "Insufficient balance");
}
